<?php
/**
 * Laconica, the distributed open-source microblogging tool
 *
 * Change profile settings
 *
 * PHP version 5
 *
 * LICENCE: This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * @category  Settings
 * @package   Laconica
 * @author    Evan Prodromou <evan@controlyourself.ca>
 * @author    Zach Copley <zach@controlyourself.ca>
 * @copyright 2008-2009 Control Yourself, Inc.
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
 * @link      http://laconi.ca/
 */

if (!defined('LACONICA')) {
    exit(1);
}

require_once INSTALLDIR.'/lib/accountsettingsaction.php';

/**
 * Change profile settings
 *
 * @category Settings
 * @package  Laconica
 * @author   Evan Prodromou <evan@controlyourself.ca>
 * @author   Zach Copley <zach@controlyourself.ca>
 * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
 * @link     http://laconi.ca/
 */

class ThemesettingsAction extends AccountSettingsAction
{
    /**
     * Title of the page
     *
     * @return string Title of the page
     */

    function title()
    {
        return _('Thay đổi theme / Giao diện');
    }

    /**
     * Instructions for use
     *
     * @return instructions for use
     */

    function getInstructions()
    {
        return _('Bạn có thể thay đổi, chỉnh sửa giao diện trang chủ của bạn tại đây '.
                  'để thu hút người xem hơn.');
    }

    /**
     * Show stylesheets
     *
     * @return nothing
     */
    function showStylesheets()
    {
        parent::showStylesheets();
        $this->element('link', array('rel' => 'stylesheet',
                                     'type' => 'text/css',
                                     'href' => theme_path('css/jquery.colorpicker.css', null)));                       
    }
    
    /**
     * Show javascript headers
     *
     * @return nothing
     */
    function showScripts()
    {
        parent::showScripts(); 
        $this->element('script', array('type' => 'text/javascript',
                                       'src' => common_path('js/colorpicker.js')),
                       ' '); 
        $this->element('script', array('type' => 'text/javascript',
                                       'src' => common_path('js/colorpicker.eye.js')),
                       ' ');
        $this->element('script', array('type' => 'text/javascript',
                                       'src' => common_path('js/colorpicker.utils.js')),
                       ' ');
        $this->element('script', array('type' => 'text/javascript',
                                       'src' => common_path('js/colorpicker.layout.js')),
                       ' ');
        $this->element('script', array('type' => 'text/javascript',
                                       'src' => common_path('js/theme.js')),
                       ' ');                      
    }
    
    /**
     * Content area of the page
     *
     * Shows a form for uploading an avatar.
     *
     * @return void
     */

    function showContent()
    {
        $user = common_current_user();
        $profile = $user->getProfile();
        if($profile->user_theme=='0')
        {
            $theme_in_data = Custom_theme::staticGet('id','1');
        }
        else
        {
            $theme_in_data = Custom_theme::staticGet('id',$profile->user_theme );
        }

        $this->elementStart('form', array('enctype' => 'multipart/form-data',
                                            'method' => 'post',
                                           'id' => 'form_settings_theme',
                                           'class' => 'form_settings',
                                           'action' => common_local_url('themesettings')));
        $this->elementStart('fieldset');
        $this->element('legend', null, _('Chỉnh sửa Theme'));
        $this->hidden('token', common_session_token());

        # too much common patterns here... abstractable?
        $this->raw('<br />');
        $this->elementStart('ul', 'form_data');

        $get_theme_list = array('0'=>'Mặc định','1'=>'Theme chỉnh sửa');
        $get_background_num = array('0'=>'Không sử dụng ảnh nền','1'=>'1 Hình nền','2'=>'2 Hình nền : Header và Footer');
        $get_background_type = array('0'=>'Lặp toàn trang', '1'=>'Góc trên Trái',
                                        '2'=>'Góc trên Giữa', '3'=>'Góc trên Phải',
                                        '4'=>'Trung tâm bên Trái','5'=>'Trung tâm màn hình',
                                        '6'=>'Trung tâm bên Phải','7'=>'Góc dưới Trái',
                                        '8'=>'Góc dưới Giữa','9'=>'Góc dưới Phải');
        $get_background_fixed = array('0'=>'Không cố định', '1'=>'Cố định');
        $this->elementStart('li');
        $this->dropdown('themeoptions', _('Chọn'),
                       $get_theme_list, _('Chọn Theme mặc định hoặc chọn chỉnh sửa theme theo ý bạn'),
                        false, 1);
        $this->elementEnd('li');
        $this->elementEnd('ul');        
        $this->raw("<span class='plus_minus_theme' id='img_theme_all_page' style='background:url(../images/plus.gif) no-repeat left;padding-left:20px; font-size:1.3em;text-transform:uppercase; font-weight:bold;'><u>Toàn trang</u> </span><br />");                
        $this->elementStart('div', array('id' => 'theme_all_page','style' => 'display:none'));
        $this->elementStart('ul', 'form_data');
        $this->elementStart('li');
        $this->input('bodycolor', _('Màu nền chính'),($this->arg('bodycolor')) ? $this->arg('bodycolor') : $theme_in_data->body_color,'Chọn màu nền chính cho trang của bạn. Vdụ : #ffffff');
        $this->elementEnd('li');
        $this->elementStart('li');
        $this->input('main_text_color', _('Màu text chính'),($this->arg('main_text_color')) ? $this->arg('main_text_color') : $theme_in_data->body_text_color,'Chọn màu cho các đoạn văn bản chính. Vdụ : #ffffff');
        $this->elementEnd('li');
        $this->elementStart('li');
        $this->input('main_link_color', _('Màu link chính'),($this->arg('main_link_color')) ? $this->arg('main_link_color') : $theme_in_data->body_link_color,'Chọn màu cho các liên kết link chính. Vdụ : #ffffff');
        $this->elementEnd('li');
        $this->elementStart('li');
        $this->dropdown('body_type', _('Sử dụng hình nền'),
                       $get_background_num, _('Bạn có thể chọn sử dụng 1 hình nền,  hoặc 2 hình nền : ở phần header và footer của trang.'),false, ($this->arg('body_type')) ? $this->arg('body_type') : $theme_in_data->body_type);
        $this->elementEnd('li');
        $this->elementStart('li');
        $this->dropdown('background_position', _('Vị trí ảnh nền'),
                       $get_background_type, _('Chọn vị trí cho ảnh nền của bạn sẽ xuất hiện. Chỉ áp dụng khi bạn chọn sử dụng 1 hình nền.'),false, ($this->arg('background_position')) ? $this->arg('background_position') : $theme_in_data->body_position);
        $this->elementEnd('li');
        $this->elementStart('li');    
        $this->dropdown('background_fixed', _('Cố định hình nền'),
                       $get_background_fixed, _('Cố định hình nền trên màn hình hay không. Chỉ áp dụng khi bạn chọn sử dụng 1 hình nền.'),false, ($this->arg('background_fixed')) ? $this->arg('background_fixed') : $theme_in_data->body_fixed);
        $this->elementEnd('li');
        $this->elementStart('li');  
        $this->inputUpload('bodyimage', _('Ảnh nền chính'),null,'Định dạng ảnh cho phép : jpg, gif, png');
        $this->elementEnd('li');
        $this->elementStart('li');
        $this->inputUpload('header_image', _('Ảnh nền header'),null,'Định dạng ảnh cho phép : jpg, gif, png');
        $this->elementEnd('li');
        $this->elementStart('li');
        $this->inputUpload('footer_image', _('Ảnh nền footer'),null,'Định dạng ảnh cho phép : jpg, gif, png');
        $this->elementEnd('li');
        $this->elementStart('li');
        $this->element('input', array('name' => 'MAX_FILE_SIZE',
                                      'type' => 'hidden',
                                      'id' => 'MAX_FILE_SIZE',
                                      'value' => ImageFile::maxFileSizeInt()));
        $this->elementEnd('li');
        $this->elementEnd('ul');
        $this->elementEnd('div');
        $this->raw("<span class='plus_minus_theme' id='img_theme_main_content' style='background:url(../images/plus.gif) no-repeat left;padding-left:20px; font-size:1.3em;text-transform:uppercase; font-weight:bold; '><u>Cột Nội dung Chính</u></span><br />");                        
        $this->elementStart('div', array('id' => 'theme_main_content', 'style' => 'display:none'));
        $this->elementStart('ul', 'form_data');        
        $this->elementStart('li');
        $this->input('content_color', _('Màu nền ô nội dung'),($this->arg('content_color')) ? $this->arg('content_color') : $theme_in_data->content_color,'Chọn màu nền cho ô nội dung chính');
        $this->elementEnd('li');
        $this->elementStart('li');
        $this->input('content_opacity', _('Độ trong suốt'),($this->arg('content_opacity')) ? $this->arg('content_opacity') : $theme_in_data->content_opacity,'Độ trong suốt, giá trị từ 0 đến 1. Vdụ: 0.5');
        $this->elementEnd('li');
        $this->elementStart('li');
        $this->input('content_text_color', _('Màu text'),($this->arg('content_text_color')) ? $this->arg('content_text_color') : $theme_in_data->content_text_color,'Chọn màu cho văn bản text trong ô nội dung');
        $this->elementEnd('li');
        $this->elementStart('li');
        $this->input('content_link_color', _('Màu link'),($this->arg('content_link_color')) ? $this->arg('content_link_color') : $theme_in_data->content_link_color,'Chọn màu cho các liên kết link trong ô nội dung');
        $this->elementEnd('li');
        $this->elementStart('li');
        $this->input('content_hover', _('Màu hover'),($this->arg('content_hover')) ? $this->arg('content_hover') : $theme_in_data->content_hover,'Chọn màu khi rê chuột lên trên những tin nhắn');
        $this->elementEnd('li');
        $this->elementEnd('ul');
        $this->elementEnd('div');
        $this->raw("<span class='plus_minus_theme' id='img_theme_tab' style='background:url(../images/plus.gif) no-repeat left;padding-left:20px; font-size:1.3em;text-transform:uppercase; font-weight:bold; '><u>Tab</u></span><br />");                        
        $this->elementStart('div', array('id' => 'theme_tab', 'style' => 'display:none'));
        $this->elementStart('ul', 'form_data');        
        $this->elementStart('li');
        $this->input('tab_bakground_color', _('Màu nền'),($this->arg('tab_background_color')) ? $this->arg('tab_background_color') : $theme_in_data->tab_background_color,'Chọn màu nền cho menu tab');
        $this->elementEnd('li');
        $this->elementStart('li');
        $this->input('tab_border_color', _('Đường viền'),($this->arg('tab_border_color')) ? $this->arg('tab_border_color') : $theme_in_data->tab_border_color,'Màu đường viền cho menu tab');
        $this->elementEnd('li');
        $this->elementStart('li');
        $this->input('tab_text_color', _('Màu text'),($this->arg('tab_text_color')) ? $this->arg('tab_text_color') : $theme_in_data->tab_text_color,'Chọn màu text cho menu tab');
        $this->elementEnd('li');
        $this->elementStart('li');
        $this->input('tab_current_color', _('Màu Tab active'),($this->arg('tab_current_color')) ? $this->arg('tab_current_color') : $theme_in_data->tab_current_color,'Chọn màu nền cho menu tab active ');
        $this->elementEnd('li');
        $this->elementEnd('ul');
        $this->elementEnd('div');
        $this->raw("<span class='plus_minus_theme' id='img_theme_additional_content' style='background:url(../images/plus.gif) no-repeat left;padding-left:20px; font-size:1.3em;text-transform:uppercase; font-weight:bold; '><u>Cột thông tin phụ</u></span><br />");                        
        $this->elementStart('div', array('id' => 'theme_additional_content', 'style' => 'display:none'));        
        $this->elementStart('ul', 'form_data');
        $this->elementStart('li');
        $this->input('sidebar_color', _('Màu nền'),($this->arg('sidebar_color')) ? $this->arg('sidebar_color') : $theme_in_data->sidebar_color,'Chọn màu nền cho cột thông tin phụ');
        $this->elementEnd('li');
        $this->elementStart('li');
        $this->input('sidebar_border_color', _('Đường viền'),($this->arg('sidebar_border_color')) ? $this->arg('sidebar_border_color') : $theme_in_data->sidebar_border_color,'Màu đường viền cho cột thông tin phụ');
        $this->elementEnd('li');
        $this->elementStart('li');
        $this->input('sidebar_opacity', _('Độ trong suốt'),($this->arg('sidebar_opacity')) ? $this->arg('sidebar_opacity') : $theme_in_data->sidebar_opacity,'Độ trong suốt, giá trị từ 0 đến 1. Vdụ: 0.5');
        $this->elementEnd('li');
        $this->elementStart('li');
        $this->input('sidebar_text_color', _('Màu text'),($this->arg('sidebar_text_color')) ? $this->arg('sidebar_text_color') : $theme_in_data->sidebar_text_color,'Chọn màu text cho cột thông tin');
        $this->elementEnd('li');
        $this->elementStart('li');
        $this->input('sidebar_link_color', _('Màu link'),($this->arg('sidebar_link_color')) ? $this->arg('sidebar_link_color') : $theme_in_data->sidebar_link_color,'Chọn màu cho các liên kết link trong cột thông tin ');
        $this->elementEnd('li');
        $this->elementEnd('ul');
        $this->elementEnd('div');
        $this->submit('save', _('Save'));
        $this->elementEnd('fieldset');
        $this->elementEnd('form');

    }

    /**
     * Handle a post
     *
     * Validate input and save changes. Reload the form with a success
     * or error message.
     *
     * @return void
     */

     function checkValidColor($string)
     {
        if (preg_match('/^#(?:(?:[a-f\d]{3}){1,2})$/i', $string))
        {
            return true;
        }
        return false;
     }
     
     function uploadMainImage()
    {
        if(is_null($_FILES['bodyimage']['name']) || (!is_null($_FILES['bodyimage']['name'])&& empty($_FILES['bodyimage']['name'])) )
        {
            return null;
        }
        try {
            $imagefile = ImageFile::fromUpload('bodyimage');
        } catch (Exception $e) {
            $this->showForm($e->getMessage());
            return null;
        }

        $cur = common_current_user();

        $filename = Custom_theme::filename($cur->id,
                                     image_type_to_extension($imagefile->type),
                                     null,
                                     'tmp'.common_timestamp());

        $filepath = Custom_theme::path($filename);

        move_uploaded_file($imagefile->filepath, $filepath);
        return $filename;
    }
    function uploadHeaderImage()
    {
                if(is_null($_FILES['header_image']['name']) || (!is_null($_FILES['header_image']['name'])&& empty($_FILES['header_image']['name'])) )
        {
            return null;
        }
        try {
            $imagefile = ImageFile::fromUpload('header_image');
        } catch (Exception $e) {
            $this->showForm($e->getMessage());
            return false;
        }

        $cur = common_current_user();

        $filename = Custom_theme::filename($cur->id,
                                     image_type_to_extension($imagefile->type),
                                     null,
                                     'tmp'.common_timestamp());

        $filepath = Custom_theme::path($filename);

        move_uploaded_file($imagefile->filepath, $filepath);
        return $filename;
    }
    function uploadFooterImage()
    {
                        if(is_null($_FILES['footer_image']['name']) || (!is_null($_FILES['footer_image']['name'])&& empty($_FILES['footer_image']['name'])) )
                                {
            return null;
        }
        try {
            $imagefile = ImageFile::fromUpload('footer_image');
        } catch (Exception $e) {
            $this->showForm($e->getMessage());
            return false;
        }

        $cur = common_current_user();

        $filename = Custom_theme::filename2($cur->id,
                                     image_type_to_extension($imagefile->type),
                                     null,
                                     'tmp'.common_timestamp());
        

        $filepath = Custom_theme::path($filename);

        move_uploaded_file($imagefile->filepath, $filepath);
        return $filename;
    }
    function handlePost()
    {
        # CSRF protection

        $token = $this->trimmed('token');
        if (!$token || $token != common_session_token()) {
            $this->showForm(_('There was a problem with your session token. '.
                               'Try again, please.'));
            return;
        }

        $themeoptions = $this->trimmed('themeoptions');
        $body_color = $this->trimmed('bodycolor');
        $body_type = $this->trimmed('body_type') ;
        $body_image ='';
        $body_image_header= '';
        $body_image_footer ='';                     
        $body_position = $this->trimmed('background_position');                           
        $body_fixed = $this->trimmed('background_fixed');
        $body_text_color = $this->trimmed('main_text_color');                              
        $body_link_color = $this->trimmed('main_link_color');                         
        $content_color = $this->trimmed('content_color') ;   
         $content_hover = $this->trimmed('content_hover') ;                       
        $content_opacity = $this->trimmed('content_opacity');                         
        $content_text_color = $this->trimmed('content_text_color');                        
        $content_link_color = $this->trimmed('content_link_color');                        
        $tab_background_color = $this->trimmed('tab_bakground_color');                        
        $tab_border_color = $this->trimmed('tab_border_color');                        
        $tab_text_color = $this->trimmed('tab_text_color');                        
        $tab_current_color = $this->trimmed('tab_current_color');                        
        $sidebar_border_color = $this->trimmed('sidebar_border_color');                        
        $sidebar_color = $this->trimmed('sidebar_color') ;                        
        $sidebar_text_color = $this->trimmed('sidebar_text_color');                        
        $sidebar_opacity = $this->trimmed('sidebar_opacity');                        
        $sidebar_link_color = $this->trimmed('sidebar_link_color');                        
        
        # Some validation
        if($themeoptions <> '0')
        {

/*            if (!is_null($body_image) && (strlen($body_image) > 0) &&
                   !Validate::uri($body_image, array('allowed_schemes' => array('http', 'https')))) {
            $this->showForm(_('Địa chỉ ảnh nền không hợp lệ.'));
            return;
            }
            if (!is_null($body_image_header) && (strlen($body_image_header) > 0) &&
                   !Validate::uri($body_image, array('allowed_schemes' => array('http', 'https')))) {
            $this->showForm(_('Địa chỉ ảnh nền header không hợp lệ.'));
            return;
            } 
            if (!is_null($body_image_footer) && (strlen($body_image_footer) > 0) &&
                   !Validate::uri($body_image, array('allowed_schemes' => array('http', 'https')))) {
            $this->showForm(_('Địa chỉ ảnh nền header không hợp lệ.'));
            return;
            }*/
            if ( !is_null($body_color) && (strlen($body_color) > 0) && !$this->checkValidColor($body_color)){
                $this->showForm(_('Mã màu nền chính không hợp lệ.'));
                return;
            }
            if (!is_null($body_text_color) && (strlen($body_text_color) > 0) &&  !$this->checkValidColor($body_text_color)){
                $this->showForm(_('Mã màu text chính không hợp lệ.'));
                return;
            }
            if (!is_null($body_link_color) && (strlen($body_link_color) > 0) &&  !$this->checkValidColor($body_link_color)){
                $this->showForm(_('Mã màu link chính không hợp lệ.'));
                return;
            }
            if (!is_null($content_color) && (strlen($content_color) > 0) && !$this->checkValidColor($content_color)){
                $this->showForm(_('Mã màu nền ô nội dung không hợp lệ.'));
                return;
            }
            if (!is_null($content_hover) && (strlen($content_hover) > 0) && !$this->checkValidColor($content_hover)){
                $this->showForm(_('Mã màu hover ô nội dung không hợp lệ.'));
                return;
            }
            if (!is_null($content_text_color) && (strlen($content_text_color) > 0) && !$this->checkValidColor($content_text_color)){
                $this->showForm(_('Mã màu text ô nội dung không hợp lệ.'));
                return;
            }
            if (!is_null($content_link_color) && (strlen($content_link_color) > 0) && !$this->checkValidColor($content_link_color)){
                $this->showForm(_('Mã màu link ô nội dung không hợp lệ.'));
                return;
            }
            if (!is_null($tab_background_color) && (strlen($tab_background_color) > 0) && !$this->checkValidColor($tab_background_color)){
                $this->showForm(_('Mã màu nền của menu Tab không hợp lệ.'));
                return;
            }
            if (!is_null($tab_border_color) && (strlen($tab_border_color) > 0) && !$this->checkValidColor($tab_border_color)){
                $this->showForm(_('Mã màu viền của menu Tab không hợp lệ.'));
                return;
            }
            if (!is_null($tab_text_color) && (strlen($tab_text_color) > 0) && !$this->checkValidColor($tab_text_color)){
                $this->showForm(_('Mã màu text của menu Tab không hợp lệ.'));
                return;
            }
            if (!is_null($tab_current_color) && (strlen($tab_current_color) > 0) && !$this->checkValidColor($tab_current_color)){
                $this->showForm(_('Mã màu text của menu Tab không hợp lệ.'));
                return;
            }
            if (!is_null($sidebar_border_color) && (strlen($sidebar_border_color) > 0) && !$this->checkValidColor($sidebar_border_color)){
                $this->showForm(_('Mã màu viền của cột thông tin không hợp lệ.'));
                return;
            }
            if (!is_null($sidebar_color) && (strlen($sidebar_color) > 0) && !$this->checkValidColor($sidebar_color)){
                $this->showForm(_('Mã màu nền của cột thông tin không hợp lệ.'));
                return;
            }
            if (!is_null($sidebar_text_color) && (strlen($sidebar_text_color) > 0) && !$this->checkValidColor($sidebar_text_color)){
                $this->showForm(_('Mã màu text của cột thông tin không hợp lệ.'));
                return;
            }
            if (!is_null($sidebar_link_color) && (strlen($sidebar_link_color) > 0) && !$this->checkValidColor($sidebar_link_color)){
                $this->showForm(_('Mã màu link của cột thông tin không hợp lệ.'));
                return;
            }
            if (!is_null($content_opacity) && (strlen($content_opacity) > 0) &&
                   !Validate::number($content_opacity, array('decimal' => '.','min'=>'0','max'=>'1'))) {
            $this->showForm(_('Độ trong suốt ô nội dung không hợp lệ.'));
            return;
            }
            if (!is_null($sidebar_opacity) && (strlen($sidebar_opacity) > 0) &&
                   !Validate::number($sidebar_opacity, array('decimal' => '.','min'=>'0','max'=>'1'))) {
            $this->showForm(_('Độ trong suốt cột thông tin phụ không hợp lệ.'));
            return;
            }
            
        }        
        $user = common_current_user();
        $profile = $user->getProfile();
        $current_theme_id = $profile->user_theme;
        
       if($themeoptions==0)
        {
                if($current_theme_id<>0)
                {
                    $current_user_theme_temp = Custom_theme::staticGet('id',$current_theme_id );
                    if($current_user_theme_temp->site_theme==0)
                    {
                        // Should delete the background image here ?
                        $current_user_theme_temp->deleteMainImage();
                        $current_user_theme_temp->deleteHeaderImage();
                        $current_user_theme_temp->deleteFooterImage();
                        $current_user_theme_temp->delete();
                    }
                }
                if(!$profile->updateUserTheme($themeoptions))
                {
                    $this->showForm(_('Có lỗi xảy ra trong quá trình cập nhật Theme - Lỗi no1 .'));
                    return;
                }
        }
        else
        {
                $current_user_theme = Custom_theme::staticGet('id',$current_theme_id );
                if($current_theme_id <> 0 && $current_user_theme->site_theme==0)
                { 
                    $temp_user_update = clone ($current_user_theme);
                    $current_user_theme->body_type=$body_type;  
                    if($body_type==1)
                    {
                       
                        $body_image = $this->uploadMainImage();
                        if(!is_null($body_image)){
                         $current_user_theme->deleteMainImage();
                         $current_user_theme->deleteHeaderImage();
                         $current_user_theme->deleteFooterImage();
                         $current_user_theme->body_image=$body_image; 

                        }
                        $current_user_theme->body_fixed=$body_fixed;
                        $current_user_theme->body_position=$body_position;
                    }
                    if($body_type==2)
                    {
                         $body_image_header = $this->uploadHeaderImage();                         
                         $body_image_footer = $this->uploadFooterImage();                                           
                         if(!is_null($body_image_header))
                         {
                          $current_user_theme->deleteMainImage();
                          $current_user_theme->deleteHeaderImage();
                          $current_user_theme->body_image_header=$body_image_header;
                         }
                         if(!is_null($body_image_footer))
                         {
                         $current_user_theme->deleteFooterImage();
                         $current_user_theme->body_image_footer=$body_image_footer;  
                         }
                    }
                         $current_user_theme->body_color = $body_color;
                         $current_user_theme->body_text_color=$body_text_color;                           
                         $current_user_theme->body_link_color=$body_link_color;                      
                         $current_user_theme->content_color=$content_color;
                         $current_user_theme->content_hover=$content_hover;                           
                         $current_user_theme->content_opacity=$content_opacity;                        
                         $current_user_theme->content_text_color=$content_text_color;                        
                         $current_user_theme->content_link_color=$content_link_color;                      
                         $current_user_theme->tab_background_color=$tab_background_color;                        
                         $current_user_theme->tab_border_color=$tab_border_color;                        
                         $current_user_theme->tab_text_color=$tab_text_color;                    
                         $current_user_theme->tab_current_color=$tab_current_color;                         
                         $current_user_theme->sidebar_border_color=$sidebar_border_color;                         
                         $current_user_theme->sidebar_color=$sidebar_color;                         
                         $current_user_theme->sidebar_text_color=$sidebar_text_color;                         
                         $current_user_theme->sidebar_opacity=$sidebar_opacity;                         
                         $current_user_theme->sidebar_link_color=$sidebar_link_color;                              
                         $current_user_theme->site_theme = 0;
                        try
                        {
                            $current_user_theme->update($temp_user_update);
                        }
                        catch(Exception $e)
                        {
                            $this->showForm(_('Có lỗi xảy ra trong quá trình cập nhật Theme - Lỗi no3.'));
                            return;
                        }
                }
                else
                {
                
                         $current_user_theme_insert = new Custom_theme();
                         $current_user_theme_insert->body_type=$body_type;  
                   if($body_type==1)
                    {
                        $body_image = $this->uploadMainImage();
                        if(!is_null($body_image)){$current_user_theme_insert->body_image=$body_image; }
                        $current_user_theme_insert->body_fixed=$body_fixed;
                        $current_user_theme_insert->body_position=$body_position;
                    }
                    if($body_type==2)
                    {
                        $body_image_header = $this->uploadHeaderImage();                         
                        $body_image_footer = $this->uploadFooterImage();                                           
                        if(!is_null($body_image_header))
                         {
                             $current_user_theme_insert->body_image_header=$body_image_header;
                         }
                        if(!is_null($body_image_footer))
                         {                       
                         $current_user_theme_insert->body_image_footer=$body_image_footer;  
                         }
                    }                                           
                         $current_user_theme_insert->body_position=$body_position;                           
                         $current_user_theme_insert->body_color = $body_color;
                         $current_user_theme_insert->body_text_color=$body_text_color;                           
                         $current_user_theme_insert->body_link_color=$body_link_color;                      
                         $current_user_theme_insert->content_color=$content_color;  
                         $current_user_theme_insert->content_hover=$content_hover;                       
                         $current_user_theme_insert->content_opacity=$content_opacity;                        
                         $current_user_theme_insert->content_text_color=$content_text_color;                        
                         $current_user_theme_insert->content_link_color=$content_link_color;                      
                         $current_user_theme_insert->tab_background_color=$tab_background_color;                 
                         $current_user_theme_insert->tab_border_color=$tab_border_color;                        
                         $current_user_theme_insert->tab_text_color=$tab_text_color;                    
                         $current_user_theme_insert->tab_current_color=$tab_current_color;                         
                         $current_user_theme_insert->sidebar_border_color=$sidebar_border_color;                     
                         $current_user_theme_insert->sidebar_color=$sidebar_color;                         
                         $current_user_theme_insert->sidebar_text_color=$sidebar_text_color;                         
                         $current_user_theme_insert->sidebar_opacity=$sidebar_opacity;                         
                         $current_user_theme_insert->sidebar_link_color=$sidebar_link_color;
                         $current_user_theme_insert->site_theme=0;                
                    try
                    {
                        $id =  $current_user_theme_insert->insert();
                        $profile->updateUserTheme($id);
                    }
                    catch(Exception $e)
                    {
                        $this->showForm(_('Có lỗi xảy ra trong quá trình cập nhật Theme - Lỗi no4.'));
                        return;
                    }
                }

                
            } 
            
        $this->showForm(_('Settings saved.'), true);
    }

}
